#ifndef METHOD_H
#define METHOD_H

#include "properties.h"

typedef struct
{
    char *name;
    char *description;
    property_list_t *parameters;
    void (*callback)(void *context, property_list_t *parameters);
    void *context;
} method_t;

#define method_list_t general_list_t
#define method_list_add general_list_add
#define method_list_new general_list_new

method_t *method_create(char *name, char *description, property_list_t *parameters, void (*callback)(void *, property_list_t *), void *context);
method_t *method_list_get(method_list_t *list, char *name);
cJSON *method_list_get_descriptor_json(method_list_t *list);

#endif